跳到主要内容

3.2-mongo 命令

Create by fall on 17 Sep 2021 Recently revised in 25 Feb 2024

mongosh

可以使用 mongosh 命令进入 mongo 数据库专用命令行

数据库操作

# 查看当前数据库
db

# 查看一下当前拥有的数据库
show dbs
# 创建数据库
use [databaseName] # 使用 / 创建数据库
show dbs # 查看当前所有的数据库
# 删除数据库
db.dropDatabase() # 删除当前使用的数据库
show dbs

集合操作

# 添加集合
use test
db.createCollection("article") # 添加一个名为 article 的集合
show collections # 展示当前数据库内的集合
# 删除集合
db.article.drop() # 删除当前集合
show collections

插入文档

#  db.collection.insert(document) #通过 collection 对象的 insert 方法向集合中插入文档
# 插入文档
db.createCollection('article')
db.article.insert({
name:'Fall',
description:'未来的前端艺术家',
createBy:'Fall',
selfWebUrl:'www.fall.com'
})
db.article.find({}) # 查询所有 article 的文档

更新数据

db.article.update({name:'fall'},{name:'fall_again'},{multi:false}) 
# 第一个参数,表示要替换的内容
# 第二个参数,表示替换后的内容
# 第三个选项为配置,multi 表示是否为多选,默认为 false

# 只进行替换 name 属性
db.article.update({name:'fall'},{$set:{name:'fall_again'}},{multi:false})

替换文档

db.article.save({})

删除文档

# 删除文档内容
# db.collection.remove(<query>,{justOne:<boolean>})
db.article.remove({'name':'fall'})
#删除 name 为 fall 的所有文档

查询文档

# 通过 find 对象来查找文档
# db.collection.find(query,projection)
# query:查询条件
# projection:使用投影操作符指定返回的键
db.article.find() # 查询 article 中的全部文档

指定查找操作

# 读取指定文档
# db.collection.find().limit(Number)
db.article.find().limit(2) # 只查看符合条件的的2条数据
# 跳过指定数量的文档
# db.collection.find().limit(NUMBER).skip(NUMBER)
db.article.find().limit(2).skip(2) # 跳过两条数据,查看两条数据

排序操作

# db.collection.find().sort({KEY:1})
# 1 为升序, -1 为降序
db.article.find().sort({likes:-1}) # 以 likes 字段进行降序排列

索引

# 创建索引提高查询效率
# db.collection.createIndex(keys,options)
# option 中的配置选择
# background 创建过程中会阻塞其他的数据库操作,设置为 true 表示后台创建,默认值为 false
# unique 设置为 true 表示唯一索引
db.article.createIndex({"title":1,"description":-1},{background:true})
db.article.getIndexes() # 查看集合中已经创建的索引

聚合

# 聚合表示对数据的多个内容进行操作
db.article.aggregate([{$group:}])

rs

如果出现错误,node is not in primary or recovering state,说明当前节点并不是主节点或者是恢复状态

Repica Set

mongod

mongod 是 MongoDB 数据库管理系统的守护进程(daemon),负责处理数据库的读写操作以及管理数据的存储和索引等。它是 MongoDB 的核心组件之一,具体功能包括:

  1. 数据存储mongod 负责将数据存储在磁盘上并管理数据文件。
  2. 客户端连接管理mongod 处理来自客户端的连接请求,并能够同时处理多个连接。
  3. 数据操作:它执行对数据库的增、删、改、查等操作。
  4. 索引管理mongod 负责创建和维护数据库索引,以提高查询性能。
  5. 复制与故障转移:在配置了复制集的环境中,mongod 还负责数据的复制和故障转移。
  6. 聚合与查询:支持 MongoDB 查询语言,以便在文档中检索和聚合数据。

mongod 命令(mongo + god),哈哈哈。

mongod --version 用来获取版本

使用集群

# 进入 mongosh
moingosh
# 切换到 admin 然后关闭
use admin
rs.initiate()
exit
rs.help() # rs 命令是集群相关的命令
# Command replSetInitiate requires authentication
mongosh -u fall

如果你使用 mongod 进行配置,你可能使用到以下的命令

  • --replSet 设置集群的名称
  • --port 设置网络端口
  • --dbpath 设置数据的路径
  • --authenticationDatabase, --username--password 认证的详情
mongod --replSet rs0 \
--port 27017 \
--dbpath /path/to/your/mongodb/dataDirectory \
--authenticationDatabase "admin" \
--username "fall" \
--password "password123"